var app = {
    url: '/game',
    initialize: function() {
        //alert("init");
        //$('login-name').focus();
        // app.listen();
    },
    listen: function() {
        alert("listen");
        new Ajax.Request('/game', {
            postBody: "action=GET",
            requestHeaders: ['Content-Type',
                'application/x-www-form-urlencoded; charset=UTF-8'],
            onSuccess: function() {
                alert("success")
            },
            onComplete: function() {
                alert("complete");
            }
        });

        //$('comet-frame').src = app.url; //+ '?' + count;
        // alert('after listen'+$('comet-frame').html());
        // count ++;
    },
    login: function() {
        alert("login");
        var name = $F('login-name');
        if (! name.length > 0) {
            $('system-message').style.color = 'red';
            $('login-name').focus();
            return;
        }
        $('system-message').style.color = '#2d2b3d';
        $('system-message').innerHTML = name + ':';

        $('login-button').disabled = true;
        $('login-form').style.display = 'none';
        $('message-form').style.display = '';

        var query =
                'action=login' +
                        '&name=' + encodeURI($F('login-name'));
        new Ajax.Request(app.url, {
            postBody: query,
            onSuccess: function() {
                $('message').focus();
            }
        });
    },
    post: function() {
        alert("Post");
        var message = $F('message');
        if (!message > 0) {
            return;
        }
        $('message').disabled = true;
        $('post-button').disabled = true;

        var query =
                'action=post' +
                        '&name=' + 'aaa' +
                    //   + encodeURI($F('login-name')) +
                        '&message=' + 'aaa';
        //    + encodeURI(message);
        new Ajax.Request(app.url, {
            postBody: query,
            requestHeaders: ['Content-Type',
                'application/x-www-form-urlencoded; charset=UTF-8'],
            onComplete: function() {
                $('message').disabled = false;
                $('post-button').disabled = false;
                $('message').focus();
                $('message').value = '';
            }
        });
    },

    //    // Находим нужную таблицу
    //    var tbody = d.getElementById('tab1').getElementsByTagName('TBODY')[0];
    //
    //    // Создаем строку таблицы и добавляем ее
    //    var row = d.createElement("TR");
    //    tbody.appendChild(row);
    //
    //    // Создаем ячейки в вышесозданной строке
    //    // и добавляем тх
    //    var td1 = d.createElement("TD");
    //    var td2 = d.createElement("TD");
    //
    //    row.appendChild(td1);
    //    row.appendChild(td2);
    //
    //    // Наполняем ячейки
    //    td1.innerHTML = name+' '+initials;
    //    td2.innerHTML = posada;


    update: function(data) {

        //if (data.add == true) {
        alert("OK");
        var tbody = d.getElementById('onLineClients').getElementsByTagName('TBODY')[0];
        // Создаем строку таблицы и добавляем ее
        var row = d.createElement("TR");
        tbody.appendChild(row);
        alert("OK");
        var td1 = d.createElement("TD");
        var td2 = d.createElement("TD");

        row.appendChild(td1);
        row.appendChild(td2);

        var p = document.createElement('input');
        p.getParameter('type') = "button";
        p.getParameter('value') = "Send invitation";
        p.getParameter('onclick') = "sendInvitation()";

        td1.innerHTML = data.email;
        td2.innerHTML = p;

        //p.innerHTML = data.add; // + ':<br/>' + data.message;

        //$('display').appendChild(p);

        // new Fx.Scroll('display').down();

        //  }
        //    if (data.add == false){}
    }
};
var rules = {
    '#onLineClients': function(elem) {
        alert("onLineClients");
        //        $.getJSON('/game', {name:name}, function(data) {
        //            alert(data);
        //        });


        //Event.
    }
    //    },
    //    '#login-button': function(elem) {
    //        elem.onclick = app.login;
    //    },
    //    '#message': function(elem) {
    //        Event.observe(elem, 'keydown', function(e) {
    //            if(e.shiftKey && e.keyCode == 13) {
    //                $('post-button').focus();
    //            }
    //        });
    //    },
    //    '#post-button': function(elem) {
    //        elem.onclick = app.post;
    //    }
};
Behaviour.addLoadEvent(app.initialize);
Behaviour.register(rules);
//

function getXmlHttp() {
    var xmlhttp;
    try {
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
        try {
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (E) {
            xmlhttp = false;
        }
    }
    if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
        xmlhttp = new XMLHttpRequest();
    }
    return xmlhttp;
}

// javascript-код голосования из примера
function vote() {
    // (1) создать объект для запроса к серверу
    // var req = getXmlHttp()

    // (2)
    // span рядом с кнопкой
    // в нем будем отображать ход выполнения
    var statusElem = document.getElementById('onLineClients')

    req.open('GET', '/game', true);
    req.send(null);  // отослать запрос

    req.onreadystatechange = function() {
        // onreadystatechange активируется при получении ответа сервера
        alert(req.readyState);
        alert("Ответ сервера: " + req.responseText);
        if (req.readyState == 4) {
            // если запрос закончил выполняться

            statusElem.innerHTML = req.statusText // показать статус (Not Found, ОК..)

            if (req.status == 200) {
                // если статус 200 (ОК) - выдать ответ пользователю
                alert("Ответ сервера: " + req.responseText);
            }
            // тут можно добавить else с обработкой ошибок запроса
        }

    }

    // (3) задать адрес подключения
    //    req.open('GET', '/game', true);
    //
    //    // объект запроса подготовлен: указан адрес и создана функция onreadystatechange
    //    // для обработки ответа сервера
    //
    //        // (4)
    //    req.send(null);  // отослать запрос

    // (5)
    statusElem.innerHTML = 'Ожидаю ответа сервера...'
}


function sendReq() {
    name = 'name';
    alert("sending request");
    vote();
}

function runMultipart() {
    var req = getXmlHttp();
    req.multipart = true;
    req.open('GET', '/game', true);

    req.onload = function(event) {
        var result = event.target.responseText;
        alert('result = ' + result);
        var d = document.createElement("div");
        d.innerHTML = "onload:" + result;
        document.getElementById('onLineClients').appendChild(d)
    };
    req.onreadystatechange = function() {
        // onreadystatechange активируется при получении ответа сервера
       // alert(req.readyState);

        if (req.readyState != 4) return;
        var d = document.createElement("div");
        d.innerHTML = "State:" + req.readyState + ' Status:' + req.status +'responseText' + req.responseText;
        document.getElementById('onLineClients').appendChild(d)  ;
        //alert("Ответ сервера: " + req.responseText);

        if (req.readyState == 4) {
            // если запрос закончил выполняться

            statusElem.innerHTML = req.statusText // показать статус (Not Found, ОК..)

            if (req.status == 200) {
                // если статус 200 (ОК) - выдать ответ пользователю
                //alert("Ответ сервера: " + req.responseText);
            }
            // тут можно добавить else с обработкой ошибок запроса
        }

    };
    req.send(null);  // отослать запрос
}